home *** CD-ROM | disk | FTP | other *** search
- *
- * Z8 Validation Suite
- * 5 April 1986
- *
- *
- * condition codes
- *
- f equ 0
- lt equ 1
- le equ 2
- ule equ 3
- ov equ 4
- mi equ 5
- eq equ 6
- z equ 6
- c equ 7
- ult equ 7
- a equ 8
- ge equ 9
- gt equ 10
- ugt equ 11
- nov equ 12
- pl equ 13
- nz equ 14
- ne equ 14
- nc equ 15
- uge equ 15
- dseg
- *
- * Registers in the Data Segment
- *
- p0 ds 1
- p1 ds 1
- p2 ds 1
- p3 ds 1
- rp4 ds 0
- p4 ds 1
- ds 1
- rp6 ds 2
- rp8 ds 2
- *
- *
- *
- rseg
- *
- * Working Registers
- *
- r0 ds 1
- r1 ds 1
-
- wp2 ds 0
- r2 ds 1
- r3 ds 1
-
- wp4 ds 0
- r4 ds 1
- r5 ds 1
-
- wp6 ds 0
- r6 ds 1
- r7 ds 1
-
- r8 ds 1
- r9 ds 1
- r10 ds 1
- r11 ds 1
- r12 ds 1
- r13 ds 1
- r14 ds 1
- r15 ds 1
- *
- *
- *
- cseg
-
- group_0 dec p0
- dec r0
- dec @p1
-
- add r0,r1
- add r0,@r1
- add p0,p1
- add p0,@p1
- add p2,#14
- add @p2,#14
-
- ld r0,p3
- ld p3,r0
-
- djnz r0,group_0
- jr f,group_0
- jr group_0
- ld r0,#0
- jp f,group_0
- jp group_0
- inc r0
- db 0Fx gap
-
- jr f,$-7
- jp f,$-10
- *
- * Group_ 1
- *
- group_1 rlc p0
- rlc r0
- rlc @p1
-
- adc r0,r1
- adc r0,@r1
- adc p0,p1
- adc p0,@p1
- adc p2,#14
- adc @p2,#14
-
- ld r1,p3
- ld p3,r1
-
- djnz r1,group_1
- jr lt,group_1
- ld r1,#0
- jp lt,group_1
- inc r1
- db 1Fx gap
-
- *
- * Group_ 2
- *
- group_2 inc p0
- inc @p1
-
- sub r0,r1
- sub r0,@r1
- sub p0,p1
- sub p0,@p1
- sub p2,#14
- sub @p2,#14
-
- ld r2,p3
- ld p3,r2
-
- djnz r2,group_2
- jr le,group_2
- ld r2,#0
- jp le,group_2
- inc r2
- db 2Fx gap
-
- *
- * Group_ 3
- *
- group_3 jp @rp4
- srp #10
-
- sbc r0,r1
- sbc r0,@r1
- sbc p0,p1
- sbc p0,@p1
- sbc p2,#14
- sbc @p2,#14
-
- ld r3,p3
- ld p3,r3
-
- djnz r3,group_3
- jr ule,group_3
- ld r3,#0
- jp ule,group_3
- inc r3
- db 3Fx gap
-
- *
- * Group_ 4
- *
- group_4 da p0
- da r0
- da @p1
-
- or r0,r1
- or r0,@r1
- or p0,p1
- or p0,@p1
- or p2,#14
- or @p2,#14
-
- ld r4,p3
- ld p3,r4
-
- djnz r4,group_4
- jr ov,group_4
- ld r4,#0
- jp ov,group_4
- inc r4
- db 4Fx gap
-
- *
- * Group_ 5
- *
- group_5 pop p0
- pop r0
- pop @p1
-
- and r0,r1
- and r0,@r1
- and p0,p1
- and p0,@p1
- and p2,#14
- and @p2,#14
-
- ld r5,p3
- ld p3,r5
-
- djnz r5,group_5
- jr mi,group_5
- ld r5,#0
- jp mi,group_5
- inc r5
- db 5Fx gap
-
- *
- * Group_ 6
- *
- group_6 com p0
- com r0
- com @p1
-
- tcm r0,r1
- tcm r0,@r1
- tcm p0,p1
- tcm p0,@p1
- tcm p2,#14
- tcm @p2,#14
-
- ld r6,p3
- ld p3,r6
-
- djnz r6,group_6
- jr z,group_6
- ld r6,#0
- jp z,group_6
- inc r6
- db 6Fx gap
-
- *
- * Group_ 7
- *
- group_7 push p0
- push r0
- push @p1
-
- tm r0,r1
- tm r0,@r1
- tm p0,p1
- tm p0,@p1
- tm p2,#14
- tm @p2,#14
-
- ld r7,p3
- ld p3,r7
-
- djnz r7,group_7
- jr c,group_7
- ld r7,#0
- jp c,group_7
- inc r7
- db 7Fx gap
- *
- * Group_ 8
- *
- group_8 decw p0
- decw r0
- decw @p1
- *
- lde r2,@wp4
- ldei @r2,@wp4
- *
- db 84x,85x,86x,87x
- *
- ld r8,p3
- ld p3,r8
-
- djnz r8,group_8
- jr a,group_8
- ld r8,#0
- jp a,group_8
- inc r8
- *
- di
- *
- * Group_ 9
- *
- group_9 rl p0
- rl r0
- rl @p1
- *
- lde @@wp4,r2
- ldei @@wp4,@r2
- *
- db 094x,095x,096x,097x
- *
- ld r9,p3
- ld p3,r9
-
- djnz r9,group_9
- jr ge,group_9
- ld r9,#0
- jp ge,group_9
- inc r9
- *
- ei
- *
- * Group_ 10
- *
- group_10 incw p0
- incw r0
- incw @p1
- *
- cp r0,r1
- cp r0,@r1
- cp p0,p1
- cp p0,@p1
- cp p2,#14
- cp @p2,#14
- *
- ld r10,p3
- ld p3,r10
-
- djnz r10,group_10
- jr gt,group_10
- ld r10,#0
- jp gt,group_10
- inc r10
- *
- ret
- *
- * Group_ 11
- *
- group_11 clr p0
- clr r0
- clr @p1
- *
- xor r0,r1
- xor r0,@r1
- xor p0,p1
- xor p0,@p1
- xor p2,#14
- xor @p2,#14
- *
- ld r11,p3
- ld p3,r11
-
- djnz r11,group_11
- jr ugt,group_11
- ld r11,#0
- jp ugt,group_11
- inc r11
- *
- iret
- *
- * Group_ 12
- *
- group_12 rrc p0
- rrc r0
- rrc @p1
- *
- ldc r2,@wp4
- ldci @r2,@wp4
- *
- db 0C4x,0C5x,0C6x
- *
- ld r0,p4(r2)
- *
- ld r12,p3
- ld p3,r12
-
- djnz r12,group_12
- jr nov,group_12
- ld r12,#0
- jp nov,group_12
- inc r12
- *
- rcf
- *
- * Group_ 13
- *
- group_13 sra p0
- sra r0
- sra @p1
- *
- ldc @@wp4,r2
- ldci @@wp4,@r2
- *
- call @p2
- *
- db 0D5x gap
- *
- call subr
- *
- ld p4(r2),r0
- *
- ld r13,p3
- ld p3,r13
-
- djnz r13,group_13
- jr pl,group_13
- ld r13,#0
- jp pl,group_13
- inc r13
- *
- scf
- *
- * Group_ 14
- *
- group_14 rr p0
- rr r0
- rr @p1
- *
- db 0E2x gap
- *
- ld r0,@r1
- ld p0,p1
- ld p0,@p1
- ld p2,#14
- ld @p2,#14
- *
- ld r14,p3
- ld p3,r14
-
- djnz r14,group_14
- jr nz,group_14
- ld r14,#0
- jp nz,group_14
- inc r14
- *
- ccf
- *
- * Group_15
- *
- group_15 swap p0
- swap r0
- swap @p1
- *
- db 0F2x gap
- *
- ld @r1,r0
- *
- db 0F4x
- *
- ld @p1,p0
- *
- db 0F6x,0F7x
- *
- ld r15,p3
- ld p3,r15
-
- djnz r15,group_15
- jr nc,group_15
- ld r15,#0
- jp nc,group_15
- inc r15
- *
- subr nop
- ret
-
-